package org.ehe.business.overdue.util;

import java.time.LocalDateTime;
import java.time.temporal.ChronoUnit;

/**
 * @author :zhangnn
 * @className :FormatOverdueTimeUtil
 * @description: TODO
 * @date 2025-10-14 15:50:14
 */
public class FormatOverdueTimeUtil {

    /**
     * 计算超期分钟数（只保留整数分钟，忽略秒数）
     * @param deadline 项目截止时间（project.getIsOverdueEndTime()）
     * @return 超期分钟数（未超期返回0）
     */
    public static String formatOverdueTime(LocalDateTime deadline) {
        if (deadline == null) {
            return "0分钟";
        }

        LocalDateTime now = LocalDateTime.now();
        // 未超期
        if (now.isBefore(deadline) || now.isEqual(deadline)) {
            return "0分钟";
        }

        // 计算总超期分钟数（忽略秒，向上取整）
        long totalMinutes = ChronoUnit.MINUTES.between(deadline, now);

        // 拆分小时和分钟
        long hours = totalMinutes / 60;
        long minutes = totalMinutes % 60;

        // 格式化输出
        StringBuilder result = new StringBuilder();
        if (hours > 0) {
            result.append(hours).append("小时");
        }
        if (minutes > 0 || hours == 0) { // 若没有小时，必显分钟
            result.append(minutes).append("分钟");
        }

        return result.toString();
    }
}
